/*
 * Copyright (c)  2015~2020, xforceplus
 * All rights reserved.
 * Project:datacare-orm
 * Id: TemplateSqlManager.java   2020-10-11 00-37-51
 * Author: Evan
 */
package cn.datacare.orm.manager;

import cn.datacare.orm.damoin.RowMapper;

import java.util.List;

/**
 * <p>
 * Title:
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: 2015~2020
 * </p>
 * <p>
 * Company/Department: xforceplus
 * </p>
 *
 * @author Evan
 * <b>Creation Time:</b> 2020-10-11 00-37-51
 * @since V1.0
 */
public interface TemplateSqlManager {
    <T> List<T> template(T obj);

    <T> T templateOne(T obj);

    <T> List<T> template(T t, RowMapper<T> mapper);


    <T> List<T> template(T t, long start, long size);

    <T> List<T> template(Class<T> target, Object paras, long start, long size);

    <T> List<T> template(T t, RowMapper mapper, long start, long size);

    <T> List<T> template(Class<T> target, Object paras, RowMapper mapper, long start, long size);

    <T> List<T> template(Class<T> target, Object paras, String orderBy);

    <T> List<T> template(Class<T> target, Object paras, long start, long size, String orderBy);

    <T> long templateCount(T t);

    <T> long templateCount(Class<T> target, Object paras);

}
